#ifndef VISITORPARAMETERS_HEADER_VIZMF_PROJECT
#define VISITORPARAMETERS_HEADER_VIZMF_PROJECT

#include "src/core/scene/material.h"
#include <vector>
#include "src/core/scene/sceneelement.h"

struct AtomParameters
{
  AtomParameters() : radius(0.0), material(Material()) {}
  float radius;
  Material material;
};

struct StyleParameters
{
  typedef std::vector<std::vector<float> > parameters_container_type;
  typedef std::vector<Scene3DElement::prim_type> primitives_container_type;
  StyleParameters() : name("")
  {
  }

  primitives_container_type atom_primitives;
  parameters_container_type atom_parameters;
  primitives_container_type bond_primitives;
  parameters_container_type bond_parameters;
  std::string name;
};

struct VisitorParameters
{
  typedef std::vector<StyleParameters> styles_container_type;
  typedef std::vector<AtomParameters> atoms_container_type;
  VisitorParameters()
  {
    atomParameters.resize(120);
  }
  styles_container_type styleParameters;
  atoms_container_type atomParameters;
};

#endif // VISITORPARAMETERS_HEADER_VIZMF_PROJECT
